package gui.dados.funcionario;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import negocio.cliente.Validar;

public class TelaAlterarAtendente extends JFrame {
	
	private JButton btAlterar;
	private JTextField txtNome,txtTelefone, txtRua, txtBairro, txtCidade, txtNumero,txtEmail;
	private String login;
	private JPasswordField txtSenha, txtConfirmarSenha;
	
	
	public TelaAlterarAtendente(String titulo, int largura, int altura){
		super(titulo);
		this.setBounds(0, 0, largura, altura);
		setResizable(false);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		configurarTela();
		setVisible(true);
	}

	private void configurarTela() {
		
		btAlterar = new JButton("Alterar");
		
		txtNome = new JTextField(10);
		txtTelefone = new JTextField(10);
		txtRua = new JTextField(10);
		txtBairro = new JTextField(10);
		txtCidade = new JTextField(10);
		txtNumero = new JTextField(10);
		txtSenha = new JPasswordField(10);
		txtConfirmarSenha = new JPasswordField(10);
		txtEmail = new JTextField(10);
		
		BorderLayout bl = new BorderLayout();
		setLayout(bl);
		
		JPanel painelSuperior = new JPanel();
		JPanel painelCentro = new JPanel();
		JPanel painelInferior = new JPanel();
		
		painelSuperior.setBackground(Color.red);
		painelCentro.setBackground(Color.white);
		painelInferior.setBackground(Color.red);
		
		add(painelSuperior, BorderLayout.NORTH);
		add(painelCentro, BorderLayout.CENTER);
		add(painelInferior, BorderLayout.SOUTH);
		
		painelSuperior.add(btAlterar);
		
		painelCentro.setLayout(new GridLayout(9,2));
		painelCentro.add(new JLabel("Nova senha: "));
		painelCentro.add(txtSenha);
		painelCentro.add(new JLabel("Confirmar nova senha: "));
		painelCentro.add(txtConfirmarSenha);
		painelCentro.add(new JLabel("Novo e-mail: "));
		painelCentro.add(txtEmail);
		painelCentro.add(new JLabel("Novo nome: "));
		painelCentro.add(txtNome);
		painelCentro.add(new JLabel("Novo telefone: "));
		painelCentro.add(txtTelefone);
		painelCentro.add(new JLabel("Nova rua: "));
		painelCentro.add(txtRua);
		painelCentro.add(new JLabel("Novo n�mero: "));
		painelCentro.add(txtNumero);
		painelCentro.add(new JLabel("Novo bairro: "));
		painelCentro.add(txtBairro);
		painelCentro.add(new JLabel("Nova cidade: "));
		painelCentro.add(txtCidade);
		
		painelInferior.add(new JLabel("CopyRigth UFRPE BSI 2� per�odo 2013"));
		
		login = TelaAtendente.txtLogin.getText();
		
		try {
			if(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getCargo().toUpperCase().equals("ATENDENTE")){
				txtSenha.setText(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getSenha());
				txtEmail.setText(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getEmail());
				txtNome.setText(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getNome());
				txtTelefone.setText(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getTelefoneCelular());
				txtRua.setText(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getRua());
				txtNumero.setText(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getNumero());
				txtBairro.setText(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getBairro());
				txtCidade.setText(TelaCadastrarGerente.cdf.recuperarFuncionario(login).getBairro());
			}else{
				JOptionPane.showMessageDialog(null, "Tela para manipular apenas atendentes");
				dispose();
			}
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "O login n�o foi inserido ou est� incorreto");
			dispose();
		}
		
		btAlterar.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				String newSenha ="", confirmarNewSenha ="";
				
				for(int i=0;i<=txtSenha.getPassword().length-1;i++){
					newSenha += txtSenha.getPassword()[i];
				}
				
				for(int i=0;i<=txtConfirmarSenha.getPassword().length-1;i++){
					confirmarNewSenha += txtConfirmarSenha.getPassword()[i];
				}
				
				String newEmail = txtEmail.getText();
				String newNome = txtNome.getText();
				String newTelefone = txtTelefone.getText();
				String newRua = txtRua.getText();
				String newNumero = txtNumero.getText();
				String newBairro = txtBairro.getText();
				String newCidade = txtCidade.getText();
				
				Validar validar = new Validar();
				
				try {
					if(validar.validarString(newNome) && validar.validarString(newCidade) &&
							validar.validarString(newTelefone) && validar.validarString(newRua) &&
							validar.validarString(newNumero) && validar.validarString(newBairro) &&
							validar.validarString(newCidade)){
						
						if(validar.validarTelefone(newTelefone)){
							
							if(validar.validarSenha(newSenha, confirmarNewSenha)){
								
								if(validar.validarEmail(newEmail)){
									TelaCadastrarGerente.cdf.recuperarFuncionario(login).setSenha(newSenha);
									TelaCadastrarGerente.cdf.recuperarFuncionario(login).setEmail(newEmail);
									TelaCadastrarGerente.cdf.recuperarFuncionario(login).setNome(newNome);
									TelaCadastrarGerente.cdf.recuperarFuncionario(login).setTelefoneCelular(newTelefone);
									TelaCadastrarGerente.cdf.recuperarFuncionario(login).setRua(newRua);
									TelaCadastrarGerente.cdf.recuperarFuncionario(login).setNumero(newNumero);
									TelaCadastrarGerente.cdf.recuperarFuncionario(login).setBairro(newBairro);
									TelaCadastrarGerente.cdf.recuperarFuncionario(login).setCidade(newCidade);
									JOptionPane.showMessageDialog(null, "Informa��es alteradas com sucesso");
									dispose();
								
								}else{
									JOptionPane.showMessageDialog(null, "O campo e-mail n�o foi preencido ou n�o � v�lido Obs.: O programa s� aceita hotmail e gmail");
								}
							
							}else{
								JOptionPane.showMessageDialog(null, "As senhas n�o correspondem");
							}
							
						}else{
							JOptionPane.showMessageDialog(null,"O telefone n�o existe");
						}
					}else{
						JOptionPane.showMessageDialog(null, "Nenhum campo pode ficar vazio");
					}
					
					
				} catch (Exception e) {
					JOptionPane.showMessageDialog(null, "O login do atendente inserido n�o existe ou n�o foi especificado");
					dispose();
				}
				
			}
		});
		
	}
}
